package com.hsnn.medstgmini.settlement.service;

import java.util.List;

import com.hsnn.medstgmini.settlement.model.SetSettlement;
import com.hsnn.medstgmini.settlement.model.SetSettlementfirst;
import com.hsnn.medstgmini.settlement.model.form.SetSettlementForm;
import com.hsnn.medstgmini.sys.model.SysUser;
import com.hsnn.medstgmini.util.Pagination;

public interface SettlementFirstManager {
	/**
	 * 
	 *@category 保存一级结算单信息（医疗机构）
	 *@author 邱磊
	 *@date 2015年7月22日 下午4:01:27
	 *@param data
	 */
	public void saveSettlementFirst(SetSettlement data);

	/**
	 * 
	 *@category 获取我的一级结算单（医疗机构）
	 *@author 邱磊
	 *@date 2015年7月22日 上午10:35:33
	 *@param page
	 *@return
	 */
	public Pagination getSettlementFirstDataList(Pagination page);
	/**
	 * 
	 *@category 获取勾选结算单明细列表数据（医疗机构）
	 *@author 邱磊
	 *@date 2015年7月22日 下午1:25:09
	 *@param page
	 *@return
	 */
	public Pagination getAddFirstDetailDataList(Pagination page);
	/**
	 * 
	 *@category 根据结算单ID获取结算单信息
	 *@author 邱磊
	 *@date 2015年7月22日 下午2:06:14
	 *@param firstlevelSettlementId
	 *@return
	 */
	public SetSettlementfirst getSetFirstById(String firstlevelSettlementId);
	/**
	 * 
	 *@category 添加结算单明细（医疗机构）
	 *@author 邱磊
	 *@date 2015年7月22日 下午2:28:33
	 *@param page
	 *@return
	 */
	public Pagination addFirstDetail(Pagination page, SysUser loginUser);
	/**
	 * 
	 *@category 编辑保存一级结算单信息（医疗机构）
	 *@author 邱磊
	 *@date 2015年7月22日 下午4:32:32
	 *@param data
	 */
	public void editSettlementFirst(SetSettlement data);
	/**
	 * 
	 *@category 删除一级结算单信息（医疗机构）
	 *@author 邱磊
	 *@date 2015年7月22日 下午4:42:29
	 *@param settlementId
	 */
	public Pagination deleteSettlementFirst(Pagination page);
	/**
	 * 
	 *@category 提一级结算单
	 *@author 邱磊
	 *@date 2015年7月22日 下午5:14:00
	 *@param list
	 */
	public Pagination subSettlementFirst(Pagination page);
	/**
	 * 
	 *@category 获取结算单明细（医疗机构）
	 *@author 邱磊
	 *@date 2015年7月22日 下午7:54:36
	 *@param page
	 *@return
	 */
	public Pagination getSetSettlemenDetailDataList(Pagination page);
	/**
	 * 
	 *@category 删除明细（医疗机构）
	 *@author 邱磊
	 *@date 2015年7月22日 下午8:25:59
	 *@param page
	 */
	public void deleteSetSettlemenFirstDetail(Pagination page, SysUser loginUser);
	/**
	 * 
	 *@category 获取一级结算单第一次审核数据（核算中心）
	 *@author 邱磊
	 *@date 2015年7月23日 上午11:03:49
	 *@param page
	 *@return
	 */
	public Pagination getAuditFirstOneDataList(Pagination page);
	/**
	 * 
	 *@category 获取一级结算单第二次审核数据（核算中心）
	 *@author 邱磊
	 *@date 2015年7月23日 上午11:03:49
	 *@param page
	 *@return
	 */
	public Pagination getAuditFirstSecondDataList(Pagination page);
	/**
	 * 
	 *@category 获取二级结算单第一次审核数据（采购中心）
	 *@author 邱磊
	 *@date 2015年7月23日 上午11:03:49
	 *@param page
	 *@return
	 */
	public Pagination getAuditSecondOneDataList(Pagination page);
	/**
	 * 
	 *@category 获取二级结算单第二次审核数据（采购中心）
	 *@author 邱磊
	 *@date 2015年7月23日 上午11:03:49
	 *@param page
	 *@return
	 */
	public Pagination getAuditSecondSecondDataList(Pagination page);
	
	/**
	 * 
	 *@category 根据结算单ID获取结算单信息(新表)
	 *@author 邱磊
	 *@date 2015年7月22日 下午2:06:14
	 *@param firstlevelSettlementId
	 *@return
	 */
	public SetSettlement getSetSettlementById(String settlementId);
	/**
	 * 
	 *@category 审核一级结算单第一次（核算中心）
	 *@author 邱磊
	 *@date 2015年7月23日 下午4:45:21
	 *@param form
	 */
	public void auditFirstOne(SetSettlementForm form);
	/**
	 * 
	 *@category 获取一级结算单审核信息
	 *@author 邱磊
	 *@date 2015年7月23日 下午5:41:27
	 *@param settlementId
	 *@return
	 */
	public SetSettlementForm getSetFirstAuditInfo(String settlementId);
	/**
	 * 
	 *@category 审核一级结算单第二次（核算中心）
	 *@author 邱磊
	 *@date 2015年7月23日 下午4:45:21
	 *@param form
	 */
	public void auditFirstSecond(SetSettlement form);
	/**
	 * 
	 *@category 审核一级结算单第二次（采购中心）
	 *@author 邱磊
	 *@date 2015年7月23日 下午4:45:21
	 *@param form
	 */
	public void centerAuditFirstSecond(SetSettlement form);
	/**
	 * 
	 *@category 保存二级结算单信息
	 *@author 邱磊
	 *@date 2015年7月23日 下午7:14:37
	 *@param data
	 */
	public void saveSettlementSecond(SetSettlement data);
	/**
	 * 
	 *@category 获取二级结算单（核算中心）
	 *@author 邱磊
	 *@date 2015年7月22日 上午10:35:33
	 *@param page
	 *@return
	 */
	public Pagination getSettlementSecondDataList(Pagination page);
	/**
	 *@category 获取我的结算单查看列表（核算中心）
	 *@author 徐国鹏
	 *@date 2015年7月22日 上午10:35:33
	 *@param page
	 */
	public Pagination getSettlementSecondDataListSee(Pagination page);
	/**
	 * 
	 *@category 获取可加入二级结算单明细（核算中心）
	 *@author 邱磊
	 *@date 2015年7月22日 下午1:25:09
	 *@param page
	 *@return
	 */
	public Pagination getAddSecondDetailDataList(Pagination page);
	/**
	 * 
	 *@category 根据结算单ID获取二级结算单信息
	 *@author 邱磊
	 *@date 2015年7月22日 下午2:06:14
	 *@param settlementId
	 *@return
	 */
	public SetSettlement getSetSecondById(String settlementId);
	/**
	 * 
	 *@category 添加二级结算单明细（核算中心）
	 *@author 邱磊
	 *@date 2015年7月22日 下午2:28:33
	 *@param page
	 *@return
	 */
	public Pagination addSecondDetail(Pagination page, SysUser user);
	/**
	 * 
	 *@category 根据结算单ID获取结算单信息（整改后的表）
	 *@author 邱磊
	 *@date 2015年7月22日 下午2:06:14
	 *@param settlementId
	 *@return
	 */
	public SetSettlement getSettlementById(String settlementId);
	/**
	 * 
	 *@category 编辑保存二级结算单信息（核算中心）
	 *@author 邱磊
	 *@date 2015年7月22日 下午4:32:32
	 *@param data
	 */
	public void editSettlementSecond(SetSettlement data);
	/**
	 * 
	 *@category 删除二级结算单信息（核算中心）
	 *@author 邱磊
	 *@date 2015年7月22日 下午4:42:29
	 *@param settlementId
	 */
	public void deleteSettlementSecond(List<SetSettlement> list);
	/**
	 * 
	 *@category 提二级结算单（核算中心）
	 *@author 邱磊
	 *@date 2015年7月22日 下午5:14:00
	 *@param list
	 */
	public Pagination subSettlementSecond(Pagination page);
	
	public Pagination getHospSettleList(Pagination page);
	/**
	 * 
	 *@category 根据结算单Id查询信息
	 *@author 邱磊
	 *@date 2015年7月24日 下午5:33:12
	 *@param settlementId
	 *@return
	 */
	public SetSettlementForm getSettlementInfoById(String settlementId);
	public Pagination hospSettleAuditList(Pagination page);
		
	public Pagination getChildSettlementList(Pagination page);
	
	public Pagination getSetSettletdetailinfoList(Pagination page);
	/**
	 * 
	 *@category 获取初审核查看页面数据（核算中心，采购中心）
	 *@author 邱磊
	 *@date 2015年7月23日 上午11:03:49
	 *@param page
	 *@return
	 */
	public Pagination getAuditSettlementSeeDataList(Pagination page);
	/**
	 * 
	 *@category 获取复审核查看页面数据（核算中心，采购中心）
	 *@author 邱磊
	 *@date 2015年7月23日 上午11:03:49
	 *@param page
	 *@return
	 */
	public Pagination getRAuditSettlementSeeDataList(Pagination page);
	
	public Pagination auditPass(Pagination page);
	
	public Pagination auditUnPass(Pagination page);
	
	public Pagination reAuditPass(Pagination page);
	
	public Pagination reAuditUnPass(Pagination page);
	public Object getSettlementDetailInfoBysetSettlementId(Pagination page);
	
	public Pagination getSettlementDataList(Pagination page);

	Pagination getSetSettlemenDetailList(Pagination page);

	void delSetSettlemenFirstDetail(Pagination page, SysUser loginUser);
	
	/**
	 * @category 检测名称是否存在
	 * @date 2015年8月11日
	 * @param settlement
	 * @return
	 */
	boolean checkSameName(SetSettlement settlement);

}
